package datastructure.stackAndQueue;

public interface Queue {
//	Each Queue Object is a queue whose elements are objects
	
//Modifiers
	
	/**
	 * Make the Queue empty.
	 */
	public void clear();
	
	/**
	 * Add val as the rear element of the queue.
	 */
	public void enqueue(Object val);
	
	/**
	 * Remove and return the front element of the queue.
	 */
	public Object dequeue();
	
//Accessors
	/**
	 * Return true if and only if this queue is empty.
	 */
	public boolean isEmpty();
	
	/**
	 * Return this queue's length 
	 */
	public int size();
	
	/**
	 * Return the element at the front of this queue.
	 */
	public Object peek();
}
